package behavior.Command;


/**
 * Created by LYJ on 2016/10/20.
 * 详细链接：Command（命令）http://blog.csdn.net/u013256816/article/details/51058106
 */
public class MainTest {
    public static void main(String... args) {
        Client1 client=new Client1();
        client.run();
        System.out.println("--------------------");
        Client2 client2=new Client2();
        client2.run();
    }
}
/*
更松散的耦合：命令模式使得发起命令的对象（客户端）和具体实现命令的对象（接收者）完全解耦，
也就是说发起命令的对象完全不知道具体实现对象是谁，也不知道该如何实现。
更动态的控制：命令模式把请求封装起来，可以动态地对它进行参数化、队列化和日志化，从而使得系统更灵活。
很自然的复合命令：命令模式中的命令对象能够很容易地组合成复合命令，也就是宏命令，从而使系统操作更简单，功能更强大。
更好的扩展性：由于发起命令的对象和具体的实现完全解耦，因此扩展新的命令就很容易，
只需要实现新的命令对象，然后在装配的时候，把具体的实现对象设置到命令对象中，
然后就可以使得这个命令对象，已有的实现完全不用变化。
缺点：
使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类，
因此某些系统可能需要大量具体命令类，这将影响命令模式的使用。
JDK中的命令模式
Java.lang.Runnable
javax.swing.Action
 */
